package com.blockchain.console.service.financial;

import java.io.OutputStream;

import com.blockchain.common.enums.XlbZcStatus;
import com.blockchain.common.enums.ZrType;
import com.blockchain.console.service.financial.entity.BEntity;
import com.blockchain.console.service.financial.entity.TtQbEntity;
import com.blockchain.console.service.financial.query.BQuery;
import com.blockchain.framework.service.Service;
import com.blockchain.framework.service.query.Paging;
import com.blockchain.framework.service.query.PagingResult;

/**
 * 币管理
 */
public interface BManage extends Service {

	/**
	 * <dt>
	 * <dl>
	 * 描述：查询用户转入币信息
	 * </dl>
	 */
	public PagingResult<BEntity> searchBzr(BQuery query, Paging paging) throws Throwable;

	/**
	 * <dt>
	 * <dl>
	 * 描述：查询用户转出币信息
	 * </dl>
	 */
	public PagingResult<BEntity> searchBzc(BQuery query, Paging paging) throws Throwable;

	/**
	 * <dt>
	 * <dl>
	 * 描述：查询用户转出币详细信息
	 * </dl>
	 */
	public BEntity getBzc(int id) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：查询用户转入币详细信息
	 * </dl>
	 */
	public BEntity getBzr(int id) throws Throwable;
	/**
	 * <dt>
	 * <dl>
	 * 描述：提币审核
	 * </dl>
	 */
	public void updateBzc(int id, XlbZcStatus zt, String bz) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：转入审核
	 * </dl>
	 */
	public void updateBzr(int id, ZrType zt,String bz) throws Throwable;

	/**
	 * <dt>
	 * <dl>
	 * 描述：提币审核(批量)
	 * </dl>
	 */
	public void updateBzcPl(XlbZcStatus zt, String bz, int... ids) throws Throwable;

	/**
	 * <dt>
	 * <dl>
	 * 描述：平台钱包信息
	 * </dl>
	 */
	public TtQbEntity getPt(int bid) throws Throwable;

	/**
	 * <dt>
	 * <dl>
	 * 描述：提币转出审核
	 * </dl>
	 */
	public void updateBzcSh(int id, XlbZcStatus zt, String bz) throws Throwable;

	/**
	 * <dt>
	 * <dl>
	 * 描述：提币转出审核
	 * </dl>
	 */
	public void export(BEntity[] bzc, OutputStream outputStream, String charset, XlbZcStatus type) throws Throwable;

	/**
	 * <dt>
	 * <dl>
	 * 描述:补单 2017年8月17日10:15:44
	 * </dl>
	 */
	public void xlbBd(int id) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述:异常处理
	 * </dl>
	 */
	public void xlbYccl(int id,String hax) throws Throwable;
}
